1 module unde.games.dizzy.omega.animations.ground_cave;
2 
3 import derelict.opengl3.gl;
4 import std.conv;
5 import std.format;
6 import std.math;
7 import std.stdio;
8 import unde.games.collision_detector;
9 import unde.games.dizzy.omega.dizzy;
10 import unde.games.dizzy.omega.main;
11 import unde.games.object;
12 import unde.games.renderer;
13 import unde.global_state;
14 
15 class GroundCave:StaticGameObject
16 {
17     this(MainGameObject root)
18     {
19         frame = -1;
20         models["ground-cave"] = root.models["ground-cave"];
21         models["ground-cave-1"] = root.models["ground-cave-1"];
22 
23         super(root);
24     }
25 
26     override void draw(GlobalState gs)
27     {
28         DizzyOmega dz = cast(DizzyOmega) root;
29 
30         if (root.scrx != 30 || root.scry != 68)
31             return;
32 
33         glPushMatrix();
34         if (frame < 0)
35         {
36             recursive_render(gs, models["ground-cave"]);
37         }
38         else
39         {
40             recursive_render(gs, models["ground-cave-1"]);
41         }
42         glPopMatrix();
43     }
44     
45     override bool tick(GlobalState gs)
46     {
47         return true;
48     }
49 
50     override void load(string[string] s)
51     {
52         string p = "groundcave";
53         if (p in s)
54             frame = s[p].to!(long);
55         else
56             frame = -1;
57     }
58 
59     override void save(ref string[string] s)
60     {
61         if (frame >= 0)
62         {
63             string p = "groundcave";
64             s[p] = frame.to!(string);
65         }
66     }    
67 }